The present invention is related to natural language processing, and more particularly to generating responses to natural language queries.
Traditional natural language processing systems are capable of generating semantic and syntactic parses from a natural language sentence and responding in well-defined ways, for example, generating a natural language answer using knowledge from a pre-defined knowledge base (U.S. Pat. No. 5,884,302). It would be beneficial to enhance this capability by adding some form of deductive reasoning engine or logic prover to provide answers constructed from applying logic to the knowledge base rather than directly from the knowledge base.
However, one cannot simply combine a deductive reasoning engine or logic prover with a natural language processing system; systems that attempt this will produce poor real-world results since they cannot perform such reasoning on millions of deductions and their conclusions, since this is computationally intractable. This means that they either have too few rules to produce useful results, or their reasoning capabilities are severely limited, which again limits the situations in which such systems can produce useful results (U.S. Pat. No. 6,728,692). In addition, the limited representational capability of such systems (such as word tuples, first-order logic, statistical measures, and predicate logic) means that the systems will never be able to capture the full complexity of natural language, since none of these representations can adequately represent the full meaning of words and phrases in natural languages such as English (U.S. Pat. No. 6,263,335 and U.S. Pat. No. 6,675,159). Such systems may have good research or laboratory results yet still fail to perform in the real world due to this lack. Indeed, accurately processing requires the ability to interpret sentences at run-time rather than pre-loading them into predefined knowledge base representations, since the method of reasoning necessary to make sense of real world languages is contextually dependent. Human languages are simply too complex to be represented by strict formalisms.
What is needed is a way to use only the pieces of information that are directly relevant to the current query, without traversing or conducting deductive (or inductive or abductive) reasoning on every piece of information related to each concept in a sentence. The present invention solves these problems by using directed reasoning to selectively conduct only those deductions and logic necessary to understand a sentence and draw relevant conclusions, and by integrating this reasoning directly into the act of parsing. This alleviates the need for a logic prover to carry out all possible logical deductions, which dramatically improves both performance and memory usage. It also prevents the logical problems that can occur if contradictory statements are included in a knowledge base.
Most real-world natural language processing systems also have trouble getting useful information into a knowledge base and constructing useful ontologies. To produce useful results, most such systems require predefined knowledge to be entered into a knowledge base in some formalized representation or to have a well-defined ontology for some particular set of domains. This limits the systems to the narrow domains they are preprogrammed with (U.S. Pat. No. 6,728,692). Systems that can automatically construct ontologies or other knowledge base entries are limited by lack of relevant knowledge, information overload, and rigid mathematical formal representations they cannot adequately represent the full complexities of human language (U.S. Pat. No. 6,263,335 and U.S. Pat. No. 6,675,159). The present invention uses human language to represent such knowledge, avoiding this problem and making it easy to add additional source data (since most documents are written in human language). It allows the use of more complex compound queries that require additional actions to evaluate at run-time, such as queries requiring counting or classifying groups of objects (i.e. “Determine the number of sports cars sold in the United States in 2004”).